package com.yuanthink.commons.base;

import java.io.Serializable;
import java.util.List;
/**
 * 
 * @author 06peng
 *
 * @param <E>
 * @param <PK>
 */
public interface EntityDao<E, PK extends Serializable> {

	public E getById(PK id);
	
	public void deleteById(PK id);
	
	public void delete(E obj);
	
	public void save(E entity);
	
	public void update(E entity);
	
	public void saveOrUpdate(E entity);
	
	public List<E> findAll();
	
	public List<E> search(String sql);
	
	/**
	 * 执行sql语句
	 * @param sql
	 * @return 返回受影响的记录数
	 */
	public int executeSQL(String sql);
}
